1. Field of the Invention
The present invention relates generally to a data processing system. In particular, the present invention relates to service frameworks in a data processing system. Still more particularly, the present invention relates to generating service frameworks in a data processing system.
2. Description of the Related Art
Enterprise applications are becoming increasingly popular as more business and transactions are done electronically over the Internet and other networks. Enterprise software is typically any software suite with common business applications that provides tools for modeling how the entire organization works and development tools for building tools unique to the organization. A framework is a defined structure in which another software project can be organized and developed effectively allowing the different components of an application to be integrated. A service framework is a software framework developed to provide a core set of functions needed by a service industry. For example, a banking service framework may be developed to provide a core set of functions for the banking industry, including automatic teller machine (ATM) functions, account management functions, and Internet access functions.
On the other hand, enterprise frameworks such as Java 2 Enterprise Edition (J2EE) were developed to simplify application development as much as possible. J2EE is a product available from Sun Microsystems, Inc. J2EE is a Java-based runtime platform for developing, deploying, and managing distributed multi-tier architectural applications using modular components. J2EE is particularly useful for database management, banking and transactional services, and electronic ticketing to name a few applications. J2EE is a strongly typed interface architecture, which means that datatypes of enterprise applications can be type-checked at compile time so that type errors can be minimized at run time. For example, a strongly typed method getcustomer( ) may be type-checked at compile time to determine whether a Customer object is returned.
With the strongly typed interface architecture of J2EE, a programmer working in an integrated development environment (IDE) is assisted in creating the code and catching more errors during compile time which results in savings of time and effort. Further, custom coded components make it easier to debug errors that occur at runtime because there is less need to look inside the value of variables (usually requiring a “dump” or a step by step trace). Despite these benefits, it is still very difficult to code enterprise applications following the best practice usage of the J2EE framework components because any large application ultimately needs a large number of custom coded components. The problem is that applications with a large number of components are harder to maintain. These applications take up additional time to build and extra memory at runtime.
To minimize the number of components that must be developed, many development organizations invent their own framework on top of J2EE. These extensions or plug-in modules often allow the functionality of the framework to be expanded providing features and functions not yet supported. Common extensions include those that provide additional output requests and resources. However, extensions are not always useful. Sometimes these extensions inadvertently “undo” the benefits of strong typing by providing weakly typed objects for the average programmer to use. Weakly typed objects are objects that may be easily typed as other objects. For example, Java ‘Object’ class or ‘String’ class are weakly typed objects.
Even with these extensions, the enterprise application is error prone and the performance may suffer from having extra layers that effectively “do nothing”. In the end, the development team is faced with an uncomfortable choice—maintainability or performance. Therefore, it would be advantageous to have a method that leverages a strongly typed architecture framework, such as J2EE, to generate service framework components, such that both usability and performance may be achieved.